<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         * ES5会改变原数组的方法：
         * unshift() 方法将一个或多个元素添加到数组的开头，并返回该数组的新长度
         * shift()   方法从数组中删除第一个元素，并返回该元素的值
         * push()    方法将一个或多个元素添加到数组的末尾，并返回该数组的新长度
         * pop()    方法从数组中删除最后一个元素，并返回该元素的值
         * 
         * sort(cb)  数组排序
         * reverse() 数组翻转
         * splice(beginindex, endindex, [item1,item2....])
         */
        /**
         * fill() 方法
            作用：fill() 方法使用指定数据填充数组，并且替换对应的元素（简言之是替换内容）
            
            前提：数组要有length

            返回值：填充好的数组（新数组），改变原数组

            格式：数组.fill(要填充的数据，开始索引，结束索引);

                        ① 要填充的数据：用什么数据填充数组里面的每一位
                        ② 开始索引：从哪一个下标开始，默认值是0
                        ③ 结束索引：填充到哪一个下标位置结束，默认是到 末尾，包前不包后
         * 
         * 
         * 
         */
        // var arr = [12, 56, 67, 89, 45];
        // var res1 = arr.unshift(11111, 22222);    //开头添加一个或多个元素
        // var res2 = arr.shift();                  //开头删除一个元素
        // var res3 = arr.push(8888, 9999);         //末尾添加一个或多个元素
        // var res4 = arr.pop();                    //末尾删除一个元素
        // console.log(res1); //7
        // console.log(res2); //删除掉的那个值
        // console.log(res3);
        // console.log(res4);
        // console.log(arr);

        // 数组排序
        // let arr1 = [34, 67, 45, 68, 89, 56, 13];
        // let res1 = arr1.sort((a, b) => a - b);
        // console.log(res1);//[13, 34, 45, 56, 67, 68, 89]
        // console.log('原数组：', arr1);// [13, 34, 45, 56, 67, 68, 89]

        // // 数组翻转
        // let result = arr1.reverse();
        // console.log(result);
        // console.log('原数组：', arr1);


        // 数组截取，并填充 splice
        // let res2 = arr1.splice(3, 2, 'a', 'b', 'c');
        // console.log(res2);//68,89
        // console.log('原数组：', arr1);//[34, 67, 45, 'a', 'b', 'c', 56, 13]

        // let res3 = arr1.splice(0);
        // console.log(res3);
        // console.log('原数组：', arr1);//[]空
        
        // let res4 = arr1.splice(-2); //表示从 arr.length-2的位置开始截取
        // console.log(res4);//[56, 13]
        // console.log('原数组：', arr1);//[34, 67, 45, 68, 89]

        // let res5 = arr1.splice(-7); //-8 也是一样的
        // console.log(res5);//[34, 67, 45, 68, 89, 56, 13] 截取全部元素
        // console.log('原数组：', arr1);//[] 

        // let res6 = arr1.splice(0, -1);
        // console.log(res6);//deleteCount 是 0 或者负数，则不移除元素
        // console.log('原数组：', arr1);//[34, 67, 45, 68, 89, 56, 13]

        // let res7 = arr1.splice(0, 7); // 8也是一样的
        // console.log(res7);//截取全部元素
        // console.log('原数组：', arr1);//[]

        // let res8 = arr1.splice(0, 7, 's'); // 8也是一样的
        // console.log(res8);//截取全部元素
        // console.log('原数组：', arr1);//['s'] 要添加进数组的元素，从start 位置开始。如果不指定，则 splice() 将只删除数组元素。

        // let res9 = arr1.splice(2, 7, 's'); // 8也是一样的
        // console.log(res9);//[45, 68, 89, 56, 13]
        // console.log('原数组：', arr1);//[34, 67, 's'] 要添加进数组的元素，从start 位置开始。如果不指定，则 splice() 将只删除数组元素。

        // let res10 = arr1.splice(0, -1, 'q');
        // console.log(res10);//deleteCount 是 0 或者负数，则不移除元素
        // console.log('原数组：', arr1);//['q',34, 67, 45, 68, 89, 56, 13]

    </script>
</body>
</html>